#Boa:Dialog:Dialog1
# -*- coding: utf-8 -*-

import wx
import wx.grid
import utiles
import consultasBD

GRIS = ( 220, 220, 220, 255)
NEGRO = ( 0, 0, 0, 255)
VERDENEGRO = ( 47, 79, 79, 255)

def create(parent):
    return Dialog1(parent)

[wxID_DIALOG1, wxID_DIALOG1BUTTON1, wxID_DIALOG1BUTTON2, wxID_DIALOG1BUTTON3, 
 wxID_DIALOG1GRID1, wxID_DIALOG1IDCLIENTE, wxID_DIALOG1STATICTEXT1, 
 wxID_DIALOG1STATICTEXT2, 
] = [wx.NewId() for _init_ctrls in range(8)]

class Dialog1(wx.Dialog):
    def _init_ctrls(self, prnt):
        # generated method, don't edit
        wx.Dialog.__init__(self, id=wxID_DIALOG1, name='', parent=prnt,
              pos=wx.Point(229, 54), size=wx.Size(849, 485),
              style=wx.DEFAULT_DIALOG_STYLE, title='Detalle de Facturas')
        self.SetClientSize(wx.Size(841, 458))

        self.staticText1 = wx.StaticText(id=wxID_DIALOG1STATICTEXT1,
              label='Cliente ID:', name='staticText1', parent=self,
              pos=wx.Point(24, 8), size=wx.Size(52, 13), style=0)

        self.idcliente = wx.TextCtrl(id=wxID_DIALOG1IDCLIENTE, name='idcliente',
              parent=self, pos=wx.Point(80, 8), size=wx.Size(80, 21), style=0,
              value='')

        self.grid1 = wx.grid.Grid(id=wxID_DIALOG1GRID1, name='grid1',
              parent=self, pos=wx.Point(8, 40), size=wx.Size(824, 408),
              style=0)

        self.staticText2 = wx.StaticText(id=wxID_DIALOG1STATICTEXT2, label='',
              name='staticText2', parent=self, pos=wx.Point(176, 8),
              size=wx.Size(0, 16), style=0)
        self.staticText2.SetFont(wx.Font(10, wx.SWISS, wx.NORMAL, wx.BOLD,
              False, 'Tahoma'))

        self.button1 = wx.Button(id=wxID_DIALOG1BUTTON1, label='Imprimir',
              name='button1', parent=self, pos=wx.Point(640, 8),
              size=wx.Size(91, 23), style=0)
        self.button1.Bind(wx.EVT_BUTTON, self.OnImprimir,
              id=wxID_DIALOG1BUTTON1)

        self.button2 = wx.Button(id=wxID_DIALOG1BUTTON2, label='Salir',
              name='button2', parent=self, pos=wx.Point(744, 8),
              size=wx.Size(88, 23), style=0)
        self.button2.Bind(wx.EVT_BUTTON, self.OnCancelar,
              id=wxID_DIALOG1BUTTON2)

        self.button3 = wx.Button(id=wxID_DIALOG1BUTTON3, label='Enviar e-mail',
              name='button3', parent=self, pos=wx.Point(536, 8),
              size=wx.Size(88, 23), style=0)
        self.button3.Bind(wx.EVT_BUTTON, self.OnEnviarMail,
              id=wxID_DIALOG1BUTTON3)

    def __init__(self, parent, codcliente, nombre, email):
        if codcliente == '1-2':
            utiles.mensaje(None,"El cliente tiene demasiada\ninformacion como para mostrarla")
            self.Close()
        self._init_ctrls(parent)
        self.idcliente.SetLabel(codcliente)
        self.codcliente = codcliente
        self.nombrecliente = nombre
        self.emailcliente = email
        self.staticText2.SetLabel(nombre)
        self.crearGrilla()
        self.llenarGrilla()

    def crearGrilla(self):
        self.grid1.CreateGrid(1, 11)
        self.grid1.AutoSizeColumn(0,True)
        self.grid1.AutoSizeColumn(1,True)
        self.grid1.AutoSizeColumn(2,True)
        self.grid1.AutoSizeColumn(3,True)
        self.grid1.AutoSizeColumn(4,True)
        self.grid1.AutoSizeColumn(5,True)
        self.grid1.AutoSizeColumn(6,True)
        self.grid1.AutoSizeColumn(7,True)
        self.grid1.AutoSizeColumn(8,True)
        self.grid1.AutoSizeColumn(9,True)
        self.grid1.AutoSizeColumn(10,True)

    def obtenerFacturasClientes(self):
        r1 = "SELECT idventa,nrofactura,fecha,idcliente,descuento,totalfactura,usuario,idformaticket "
        r2 = "FROM ventas WHERE idcliente='"+self.codcliente+"' ORDER BY fecha DESC"
        consultaSQL = r1 + r2
        return consultasBD.ordenCrudaDict(consultaSQL)

    def obtenerItemsFacturasClientes(self,idventa):
        r1 = "SELECT ptc,descri,talle,color,cantidad,preciolista,descuento,preciofinal "                        
        r2 = "FROM ventastieneproductos WHERE idticket='"+idventa+"' "
        consultaSQL = r1 + r2
        return consultasBD.ordenCrudaDict(consultaSQL)

    def obtenerCodSussanItem(self,ptc=""):
        consultaSQL = "SELECT codsussan FROM producto_talle_color WHERE id='"+str(ptc)+"'"
        resultado = consultasBD.ordenCrudaDict(consultaSQL)
        if resultado is None:
            return "-"
        else:
            return resultado

    def obtenerNombreVendedora(self,vendedora):
        consultaSQL = "SELECT nombre FROM vendedoras WHERE idvendedora='"+str(vendedora)+"'"
        return consultasBD.ordenCruda(consultaSQL)

    def obtenerPagoEfectivo(self,idventa=""):
        r1 = "SELECT idventa,idformapagos,descrivalor,monto,cuotas,nrorecibo "
        r2 = "FROM ventastienepagos WHERE idventa='"+str(idventa)+"'"
        consultaSQL = r1 + r2
        return consultasBD.ordenCrudaDict(consultaSQL)

    def obtenerPagoCtasCtes(self,idventa=""):
        r1 = "SELECT idventa,vencimiento,idformapagos,descripcion,cuota,montocuota,montopagado,idrecibo "
        r2 = "FROM vtas_ctasctes WHERE idventa='"+str(idventa)+"'"
        consultaSQL = r1 + r2
        return consultasBD.ordenCrudaDict(consultaSQL)

    def facturaEncabezado(self,renglon,item):
        #datos cabecera: factura, fecha
        self.grid1.AppendRows(1)
        self.grid1.SetCellValue(renglon, 0, "Fecha")
        fecha = str(item['fecha'])
        fecha = fecha[8:10]+"-"+fecha[5:7]+"-"+fecha[0:4]
        self.grid1.SetCellValue(renglon, 1, fecha)
        self.grid1.SetCellValue(renglon, 2, "Factura/NC: "+str(item['nrofactura'])+" Ticket: "+str(item['idventa']))
        self.grid1.SetCellValue(renglon, 3, "$")
        self.grid1.SetCellAlignment(renglon, 3, wx.ALIGN_RIGHT, wx.ALIGN_CENTRE)
        self.grid1.SetCellValue(renglon, 4, str(item['totalfactura']))
        for col in xrange(11):
            self.grid1.SetCellBackgroundColour(renglon, col, GRIS)

    def facturaCuerpoEncabezado(self,renglon):
        colortexto = VERDENEGRO
        self.grid1.AppendRows(1)
        self.grid1.SetCellValue(renglon, 0,"PTC")
        self.grid1.SetCellTextColour(renglon, 0, colortexto)
        self.grid1.SetCellValue(renglon, 1,"CODIGO")
        self.grid1.SetCellTextColour(renglon, 1, colortexto)
        self.grid1.SetCellValue(renglon, 2,"DESCRIPCION")
        self.grid1.SetCellTextColour(renglon, 2, colortexto)
        self.grid1.SetCellValue(renglon, 3,"Talle")
        self.grid1.SetCellTextColour(renglon, 3, colortexto)
        self.grid1.SetCellAlignment(renglon, 3, wx.ALIGN_RIGHT, wx.ALIGN_CENTRE)
        self.grid1.SetCellValue(renglon, 4,"Color")
        self.grid1.SetCellTextColour(renglon, 4, colortexto)
        self.grid1.SetCellAlignment(renglon, 4, wx.ALIGN_RIGHT, wx.ALIGN_CENTRE)
        self.grid1.SetCellValue(renglon, 5,"Cant.")
        self.grid1.SetCellTextColour(renglon, 5, colortexto)
        self.grid1.SetCellAlignment(renglon, 5, wx.ALIGN_RIGHT, wx.ALIGN_CENTRE)
        self.grid1.SetCellValue(renglon, 6,"Precio")
        self.grid1.SetCellTextColour(renglon, 6, colortexto)
        self.grid1.SetCellAlignment(renglon, 6, wx.ALIGN_RIGHT, wx.ALIGN_CENTRE)
        self.grid1.SetCellValue(renglon, 7,"Subtotal")
        self.grid1.SetCellTextColour(renglon, 7, colortexto)
        self.grid1.SetCellAlignment(renglon, 7, wx.ALIGN_RIGHT, wx.ALIGN_CENTRE)
        self.grid1.SetCellValue(renglon, 8,"Desc %")
        self.grid1.SetCellTextColour(renglon, 8, colortexto)
        self.grid1.SetCellAlignment(renglon, 8, wx.ALIGN_RIGHT, wx.ALIGN_CENTRE)
        self.grid1.SetCellValue(renglon, 9,"TOTAL")
        self.grid1.SetCellTextColour(renglon, 9, colortexto)
        self.grid1.SetCellAlignment(renglon, 9, wx.ALIGN_RIGHT, wx.ALIGN_CENTRE)
        self.grid1.SetCellValue(renglon, 10,"Modista")
        self.grid1.SetCellAlignment(renglon, 10, wx.ALIGN_RIGHT, wx.ALIGN_CENTRE)

    def facturaCuerpo(self,renglon,item,codsussan="-"):
        #datos cuerpo: ptc,codigo,descripcion,talle,color,cant,unitario,subtotal,desc,total,modista
        self.grid1.AppendRows(1)
        self.grid1.SetCellValue(renglon, 0,str(item['ptc']))
        self.grid1.SetCellValue(renglon, 1,str(codsussan))
        self.grid1.SetCellValue(renglon, 2,str(item['descri']))
        self.grid1.SetCellValue(renglon, 3,str(item['talle']))
        self.grid1.SetCellAlignment(renglon, 3, wx.ALIGN_RIGHT, wx.ALIGN_CENTRE)
        self.grid1.SetCellValue(renglon, 4,str(item['color']))
        self.grid1.SetCellAlignment(renglon, 4, wx.ALIGN_RIGHT, wx.ALIGN_CENTRE)
        self.grid1.SetCellValue(renglon, 5,str(item['cantidad']))
        self.grid1.SetCellAlignment(renglon, 5, wx.ALIGN_RIGHT, wx.ALIGN_CENTRE)
        self.grid1.SetCellValue(renglon, 6,str(item['preciolista']))
        self.grid1.SetCellAlignment(renglon, 6, wx.ALIGN_RIGHT, wx.ALIGN_CENTRE)
        self.grid1.SetCellValue(renglon, 7,str(item['cantidad']*item['preciolista']))
        self.grid1.SetCellAlignment(renglon, 7, wx.ALIGN_RIGHT, wx.ALIGN_CENTRE)
        self.grid1.SetCellValue(renglon, 8,str(item['descuento']))
        self.grid1.SetCellAlignment(renglon, 8, wx.ALIGN_RIGHT, wx.ALIGN_CENTRE)
        self.grid1.SetCellValue(renglon, 9,str(item['preciofinal']))
        self.grid1.SetCellAlignment(renglon, 9, wx.ALIGN_RIGHT, wx.ALIGN_CENTRE)

    def pagosEncabezado(self,renglon):
        colortexto = VERDENEGRO
        self.grid1.AppendRows(1)
        self.grid1.SetCellValue(renglon, 1,"Nro Recibo")
        self.grid1.SetCellTextColour(renglon, 1, colortexto)
        self.grid1.SetCellValue(renglon, 2,"DESCRIPCION")
        self.grid1.SetCellTextColour(renglon, 2, colortexto)
        self.grid1.SetCellValue(renglon, 3,"Cuotas")
        self.grid1.SetCellAlignment(renglon, 3, wx.ALIGN_RIGHT, wx.ALIGN_CENTRE)
        self.grid1.SetCellValue(renglon, 4,"$ CUOTA")
        self.grid1.SetCellTextColour(renglon, 4, colortexto)
        self.grid1.SetCellAlignment(renglon, 4, wx.ALIGN_RIGHT, wx.ALIGN_CENTRE)
        
    def pagosDetalle(self,renglon,item):
        self.grid1.AppendRows(1)
        self.grid1.SetCellValue(renglon, 1,str(item['nrorecibo']))
        self.grid1.SetCellValue(renglon, 2,str(item['idformapagos'])+" / "+str(item['descrivalor']))
        self.grid1.SetCellValue(renglon, 3,str(item['cuotas']))
        self.grid1.SetCellAlignment(renglon, 3, wx.ALIGN_RIGHT, wx.ALIGN_CENTRE)
        self.grid1.SetCellValue(renglon, 4,str(item['monto']))
        self.grid1.SetCellAlignment(renglon, 4, wx.ALIGN_RIGHT, wx.ALIGN_CENTRE)

    def renglonVendedora(self,renglon,vendedora,tipo):
        self.grid1.AppendRows(1)
        self.grid1.SetCellValue(renglon, 1,"Vendedora")
        self.grid1.SetCellBackgroundColour(renglon, 1, GRIS)
        self.grid1.SetCellValue(renglon, 2,vendedora)
        self.grid1.SetCellBackgroundColour(renglon, 2, GRIS)
        self.grid1.SetCellValue(renglon, 3,"Tipo: ")
        self.grid1.SetCellBackgroundColour(renglon, 3, GRIS)
        self.grid1.SetCellAlignment(renglon, 3, wx.ALIGN_RIGHT, wx.ALIGN_CENTRE)
        self.grid1.SetCellValue(renglon, 4,str(tipo))
        self.grid1.SetCellBackgroundColour(renglon, 4, GRIS)
        self.grid1.SetCellAlignment(renglon, 4, wx.ALIGN_LEFT, wx.ALIGN_CENTRE)

    def pagosEncabezadoCtaCte(self,renglon):
        colortexto = VERDENEGRO
        self.grid1.AppendRows(1)
        self.grid1.SetCellValue(renglon, 1,"CTA.CTE.")
        self.grid1.SetCellBackgroundColour(renglon, 1, GRIS)
        self.grid1.AppendRows(1)
        renglon = renglon + 1
        self.grid1.SetCellValue(renglon, 1,"Cuota")
        self.grid1.SetCellTextColour(renglon, 1, colortexto)
        self.grid1.SetCellValue(renglon, 2,"Vencimiento / Forma pago")
        self.grid1.SetCellTextColour(renglon, 2, colortexto)
        self.grid1.SetCellValue(renglon, 4,"Monto")
        self.grid1.SetCellTextColour(renglon, 4, colortexto)
        self.grid1.SetCellAlignment(renglon, 4, wx.ALIGN_RIGHT, wx.ALIGN_CENTRE)

    def pagosDetalleCtaCte(self,renglon,item):
        self.grid1.AppendRows(1)
        self.grid1.SetCellValue(renglon, 1,str(item['cuota']))
        self.grid1.SetCellValue(renglon, 2,str(item['vencimiento'])+" / "+str(item['idformapagos']))
        self.grid1.SetCellValue(renglon, 4,str(item['montocuota']))
        self.grid1.SetCellAlignment(renglon, 4, wx.ALIGN_RIGHT, wx.ALIGN_CENTRE)

    def llenarGrilla(self):
        renglon = 0
        listadoFacturas = self.obtenerFacturasClientes()
        for factura in listadoFacturas:
            #datos cabecera: factura, fecha
            self.facturaEncabezado(renglon,factura)
            renglon = renglon + 1

            listadoItems = self.obtenerItemsFacturasClientes(str(factura['idventa']))

            self.facturaCuerpoEncabezado(renglon)
            renglon = renglon + 1

            for item in listadoItems:
                #datos cuerpo: ptc,codigo,descripcion,talle,color,cant,unitario,subtotal,desc,total,modista
                try:
                    codsussan = str(self.obtenerCodSussanItem(item['ptc'])[0]['codsussan'])
                except:
                    codsussan = "-"
                self.facturaCuerpo(renglon,item,codsussan)
                renglon = renglon + 1

            vendedora = self.obtenerNombreVendedora(factura['usuario'])[0][0]
            tipo = str(factura['idformaticket'])
            self.renglonVendedora(renglon,vendedora,tipo)
            renglon = renglon + 1

            #datos pie: forma,descripcion,cuotas,valor cuota,total
            listadoPagosEfectivo = self.obtenerPagoEfectivo(str(factura['idventa']))
            if listadoPagosEfectivo is not ():
                self.pagosEncabezado(renglon)
                renglon = renglon + 1
                for item in listadoPagosEfectivo:
                    self.pagosDetalle(renglon,item)
                    renglon = renglon + 1

            listadoPagosCtasCtes = self.obtenerPagoCtasCtes(str(factura['idventa']))
            if listadoPagosCtasCtes is not ():
                self.pagosEncabezadoCtaCte(renglon)
                renglon = renglon + 2
                for item in listadoPagosCtasCtes:
                    self.pagosDetalleCtaCte(renglon,item)
                    renglon = renglon + 1

            #agrega renglon en blanco separador
            renglon = renglon + 1
            self.grid1.AppendRows(1)

        for col in xrange(11):
            self.grid1.AutoSizeColumn(col,True)

        self.grid1.Refresh()

        return

    def OnCancelar(self, event):
        self.Close()
    
    def OnImprimir(self, event, email=False):
        print "Imprimir"

        f=open("c:\\matrisamor.doc\\reporte-ListadoFacturaCliente.html","w")
        numeroPagina = 1
        nrosuc,nombresuc = utiles.datosSucursal()
        
        totalItemPorPagina = 50
        totalPaginas = int(self.grid1.GetNumberRows()-1) / totalItemPorPagina 
        totalPaginas+= 1

        def encabezadoPagina(texto):
            fecha = utiles.getfechaTime()
            cliente = self.idcliente.GetLabel()
            nombre = self.nombrecliente+" / "+self.codcliente
            if self.emailcliente != "":
                nombre+= " / "+self.emailcliente

            a = '<table width="100%" cellspacing="0" border="0">\n'
            a+= '<tr>\n'
            a+= '<td valign="center" align="left" width="50%">\n'
            a+= 'SUSSAN BOUTIQUE<br><font size="0.02">Historico compras cliente '+nombre+'</font>\n'
            a+= '</td>\n'
            a+= '<td valign="center" align="right" width="50%">'+fecha
            a+= '<br>P&aacute;gina '+str(numeroPagina)+' / '+str(totalPaginas)+'</td>\n'
            a+= '</tr>\n'
            a+= '</table>\n'
            texto+= a
            return texto
        
        def encabezadoTabla(texto):
            a = '<hr>'
            a+= '<table width="100%" cellspacing="0" border="0">\n'

            texto+= a
            return texto
        
        cadena = '<?xml version="1.0" encoding="utf-8" ?> \n'
        cadena+= '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> \n'
        cadena+= '<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> \n'
        cadena+= '<head> \n'
        cadena+= '<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> \n'
        cadena+= '<meta name="generator" content="Docutils 0.4.1: http://docutils.sourceforge.net/" /> \n'
        cadena+= '<title>Sussan Boutique</title> \n'
        cadena+= '</head> \n'
        cadena+= '<body> \n'

        cadena = encabezadoPagina(cadena)
        cadena = encabezadoTabla(cadena)
        f.write(cadena)

        renglon = 0
        negrita1 = ""
        negrita2 = ""
        taman = "1.5"
        for fil in xrange(self.grid1.GetNumberRows()):
            if self.grid1.GetCellValue(fil,0)=="Fecha":
                negrita1 = "<strong>"
                negrita2 = "</strong>"
            if self.grid1.GetCellValue(fil,1)=="Vendedora":
                negrita1 = "<strong>"
                negrita2 = "</strong>"
            if self.grid1.GetCellValue(fil,1)=="CTA.CTE.":
                negrita1 = "<strong>"
                negrita2 = "</strong>"
            cadena = '<tr> \n'
            cadena+= '<td valign="center" align="left"><font size="'+taman+'">'+negrita1
            cadena+= self.grid1.GetCellValue(fil,0)
            cadena+= negrita2+'</font></td>\n'
            cadena+= '<td valign="center" align="left"><font size="'+taman+'">'+negrita1
            cadena+= self.grid1.GetCellValue(fil,1)
            cadena+= negrita2+'</font></td>\n'
            cadena+= '<td valign="center" align="left"><font size="'+taman+'">'+negrita1
            cadena+= self.grid1.GetCellValue(fil,2)
            cadena+= negrita2+'</font></td>\n'
            cadena+= '<td valign="center" align="right"><font size="'+taman+'">'+negrita1
            cadena+= self.grid1.GetCellValue(fil,3)
            cadena+= negrita2+'</font></td>\n'
            cadena+= '<td valign="center" align="right"><font size="'+taman+'">'+negrita1
            cadena+= self.grid1.GetCellValue(fil,4)
            cadena+= negrita2+'</font></td>\n'
            cadena+= '<td valign="center" align="right"><font size="'+taman+'">'+negrita1
            cadena+= self.grid1.GetCellValue(fil,5)
            cadena+= negrita2+'</font></td>\n'
            cadena+= '<td valign="center" align="right"><font size="'+taman+'">'+negrita1
            cadena+= self.grid1.GetCellValue(fil,6)
            cadena+= negrita2+'</font></td>\n'
            cadena+= '<td valign="center" align="right"><font size="'+taman+'">'+negrita1
            cadena+= self.grid1.GetCellValue(fil,7)
            cadena+= negrita2+'</font></td>\n'
            cadena+= '<td valign="center" align="right"><font size="'+taman+'">'+negrita1
            cadena+= self.grid1.GetCellValue(fil,8)
            cadena+= negrita2+'</font></td>\n'
            cadena+= '<td valign="center" align="right"><font size="'+taman+'">'+negrita1
            cadena+= self.grid1.GetCellValue(fil,9)
            cadena+= negrita2+'</font></td>\n'
            cadena+= '</tr> \n'
            
            f.write(cadena)

            negrita1 = ""
            negrita2 = ""
            renglon+= 1
            
            if renglon == totalItemPorPagina :
                f.write("</table><!-- salto de pagina -->\n")
                f.write("<p STYLE='page-break-after: always;'></p>\n")                
                renglon = 0
                numeroPagina+= 1
                cadena = encabezadoPagina("")
                cadena = encabezadoTabla(cadena)
                f.write(cadena)

        tama = '"1"'
            
        cadena = '</table>\n'
        f.write(cadena)
        f.close()

        if not email:
            import os
            os.system("taskkill /IM firefox.exe /F")
            os.system("c:\\explorer.lnk c:\\matrisamor.doc\\reporte-ListadoFacturaCliente.html")

    def OnEnviarMail(self, event):
        if self.emailcliente == "":
            utiles.mensaje(None,"El Cliente no tiene e-mail registrado")
            return
        self.OnImprimir(None,email=True)
        print "Enviando e-mail"
        self.button3.Enable(False)
        try:
            fecha = utiles.obtenerFecha("d-m-Y")

            from mktsend import Sender
            username = 'sussan'
            password = 'suSSan42'

            sucursal = utiles.getSucursalActiva()
            datosSucursal = utiles.datosSucursal3(sucursal)
            local = str(datosSucursal[1])
            telefono = str(datosSucursal[2])
            
            texto = 'Querida '+str(self.nombrecliente)+': <br><br>\n'
            texto+= 'Adjuntamos m&aacute;s abajo un detalle de tus compras realizadas en nuestro local '+local+'. '
            texto+= 'Esperamos esta informaci&oacute;n te sea de utilidad y si tienes alguna consulta, \n'
            texto+= 'no dudes en comunicarte con nosotros por e-mail a sussanboutique@gmail.com \n'
            texto+= 'o a nuestro tel&eacute;fono '+telefono+'.<br>\n'
            texto+= 'No olvides visitar nuestra web <a href="www.sussanboutique.com.ar">'
            texto+= 'www.sussanboutique.com.ar</a> o facebook http://www.facebook.com/sussanshoponline '
            texto+= 'para estar al tanto de nuestras &uacute;ltimas promociones y novedades.<br>'
            texto+= 'Te esperamos pronto por nuestros locales.<br>Saludos<br><br>Sussan<br><br><hr>'
            texto = str(texto)
            subjeto = 'Sussan Boutique: compras cliente '+str(self.codcliente)+" "+str(self.nombrecliente)
            subject = unicode(subjeto,'utf-8')
            text = unicode('Se adjunta archivos','utf-8')
            f = open("c:\\matrisamor.doc\\reporte-ListadoFacturaCliente.html","r")
            html = f.read()
            f.close()
            html = texto+html
            html = unicode(html,'utf-8')

            s = Sender(username, password)
            to = [unicode(str(self.emailcliente),'utf-8')]
            try:
                print s.send(to,subject,text,html) # Esta linea debe devolver un "OK"
                print "e-mail enviado"
            except:
                print "Error en la conexion con el servidor"
                self.button3.Enable(True)
                print
                utiles.mensaje(None,"No pudo enviarse e-mail")
                return
            
            utiles.mensaje(None,"e-mail enviado")
        except:
            print
            utiles.mensaje(None,"No pudo enviarse e-mail")

        self.button3.Enable(True)
